package Cryptointerface

/*
package main

import "fmt"
import "../UnSymmetric"
import "../Symmetric"
import (
	"../hash"
	//"encoding/hex"
)
//保证绝对数据安全


func main1(){
	data:="中国工商银行王辉给建设银行尚美美转账10000元"
	//第一层数据尾部追加哈希
	var  mysha  hash.HashInterface
	mysha=new(hash.AllHash)
	mysha.SetAlog([]string{"crc64","sha512"})
	datahash:=mysha.GetStringHash(	data)
	fmt.Println("哈希长度",len(datahash))
	fmt.Println("哈希",datahash)
	data+=datahash
	fmt.Println("data",data)
	//第二层数据加密
	var mydata  Symmetric.SymmetricInterface
	mydata =new(Symmetric.DES3)
	cdata:=mydata.EncryptString(data,"abcdefghijklmn")
	fmt.Println("加密",cdata)
	//第三层数据签名
	var u UnSymmetric.UnSymmetricInterface
	u=  new(UnSymmetric.ECC)
	u.MakeKey("C:\\Users\\Tsinghua-yincheng\\Documents\\oCam\\pub.pem",
		"C:\\Users\\Tsinghua-yincheng\\Documents\\oCam\\priv.pem")
	rtext,stext:=u.SignString(cdata)
	fmt.Println("rtext",rtext)
	fmt.Println("stext",stext)
	//数据传输，cdata，rtext,stext //grpc


	//数据收到三个数据
	fmt.Println("数据分界线")
	var  istrust bool
	//第一层验证签名
	istrust=u.VerificationSignString(cdata,rtext,stext)
	if istrust{
		//第二层数据解密
		dedata:=mydata.DecryptString(cdata,"abcdefghijklmn")
		if dedata!=""{
			fmt.Println("解密成功",dedata)
			data:=dedata[:len(dedata)-128]
			//data+="1"
			hashdata:=dedata[len(dedata)-128:]
			fmt.Println("data",data)

			fmt.Println("hashdata",hashdata)
			gethash:=mysha.GetStringHash(	data)
			if gethash==hashdata{
				fmt.Println("数据没有被修改,可以进账")
			}else{
				fmt.Println("数据被修改，不管")
			}

		}else{
			fmt.Println("解密失败，数据可能被修改")
		}

	}else{
		fmt.Println("签名失败,不是工商银行")
	}


	//第三层验证哈希



}
func main(){
	var  yc  Crypto
	yc=NewYinchengCrypto([]string{"crc64","sha512"},30,"C:\\Users\\Tsinghua-yincheng\\Documents\\oCam")
	laststr:=yc.ToCryptoString("你大爷")
	fmt.Println(yc.GetResultString(laststr))
}
*/
